草庐IT

C++ 链表行为

全部标签

c# - "Include in Project"Visual Studio 2013 中数据集的异常行为

我想做一件非常简单的事情:将VS13中的一些代码从一个项目移到另一个项目中,我正面临数据集的奇怪问题。为简单起见,假设在我的源项目中我有一个名为MyDataSet的数据集,它由5个文件组成:MyDataSet.cs、MyDataSet.Designer.cs、MyDataSet.xsc、MyDataSet.xsd、MyDataSet.xss。然后我使用标准Windows功能将这些文件复制到我的目标项目文件夹,并使用VS13中的IncludeinProject菜单选项。之后我看到添加了一个额外的文件:MyDataSet1.Designer.cs。我试图检查cproj文件,它们是不同的。来

c# - Mono 上奇怪的 WeakReference 行为

使用Mono2.11.3(SGen)以及稳定的2.10.8版本时,使用Wea​​kReference的测试代码对我来说失败了。在像这样的简单代码中objectobj=newobject();WeakReferencewr=newWeakReference(obj);Assert.IsTrue(wr.IsAlive);obj=null;GC.Collect();Assert.IsFalse(wr.IsAlive);第二个断言将失败。添加GC.WaitForPendingFinalizers没有帮助。这是Mono中的错误还是我脑子里的错误?谢谢 最佳答案

c# - 对包含字母和破折号的字符串进行排序时出现意外行为

如果我有一些字符串列表包含所有数字和破折号,它们将像这样升序排序:s=s.OrderBy(t=>t).ToList();66-0616280-00066-0616280-10066-0616280100066-06162801040这符合预期。但是,如果字符串中包含字母,排序就有些出乎意料了。例如,这里是相同的字符串列表,其中尾随A替换了0,是的,它已排序:66-0616280-00A66-0616280100A66-0616280104A66-0616280-10A我原以为他们会这样排序:66-0616280-00A66-0616280-10A66-0616280100A66-061

c# - C# 中方法重载的不同行为

我在浏览C#脑筋急转弯(http://www.yoda.arachsys.com/csharp/teasers.html)时遇到了一个问题:这段代码的输出应该是什么?classBase{publicvirtualvoidFoo(intx){Console.WriteLine("Base.Foo(int)");}}classDerived:Base{publicoverridevoidFoo(intx){Console.WriteLine("Derived.Foo(int)");}publicvoidFoo(objecto){Console.WriteLine("Derived.Foo(

c# - .NET/C# 中的 TreeView 双击行为

我有一个普通的.NETWindowsFormsTreeView控件。节点设置如下:Group--child--child如果我双击折叠的组节点,它会展开(正如您所期望的那样)并触发NodeMouseDoubleClick事件,如果所选节点不是组,我的代码会执行某些操作节点。当组位于TreeView底部附近时会出现问题,因此当我双击组节点时,它会要求TreeView垂直展开以适合子节点。在这种情况下,如果我双击Group节点,当它展开并调整TreeView时,我的鼠标光标位于子节点上(它必须将所有内容向上推),这会导致NodeMouseDoubleClick认为子节点已被选中,这会导致非

c# - .Equals 上的 C# 泛型方法中的意外行为

为什么Equals方法返回的结果与泛型方法不同?我认为这里有一些我不明白的自动装箱。这是一个重现.net3.5或4.0行为的示例:staticvoidMain(string[]args){TimeZoneInfotzOne=TimeZoneInfo.Local;TimeZoneInfotzTwo=TimeZoneInfo.FindSystemTimeZoneById(tzOne.StandardName);Console.WriteLine(Compare(tzOne,tzTwo));Console.WriteLine(tzOne.Equals(tzTwo));}privatestat

c# - x64 和 x32 中的不同行为展开堆栈

为什么在下面详述的场景中,堆栈空间在x64中增加而在x32中减少,代码相同?背景:我们的客户可以使用领域语言编写脚本,该语言在运行时使用递归技术进行解释并在网络服务器上执行。他们可能会在脚本中犯错误而引发异常,该异常会被捕获并记录。由于这种递归技术,我们通过检查解释器执行脚本时使用的堆栈空间来防止堆栈溢出异常,并在我们实际用完堆栈之前终止脚本。在32位模式下一切正常,当脚本编写器出错时Exception生成,记录,堆栈展开,在此期间堆栈上剩余的空间增加并且脚本很好地终止。在64位模式下,一切都不太好,当脚本编写器出错时Exception生成,记录,堆栈展开,在此期间堆栈上剩余的空间减少

c# - 如何使用 TaskCompletionSource.SetException 保留等待行为?

(这是对这个问题的新尝试,现在更好地证明了这个问题。)假设我们有一个错误任务(varfaultedTask=Task.Run(()=>{thrownewException("test");});),我们等待它。await将解压AggregateException并抛出底层异常。它将抛出faultedTask.Exception.InnerExceptions.First()。根据ThrowForNonSuccess的源代码,它将通过执行任何存储的ExceptionDispatchInfo来执行此操作,大概是为了保留良好的堆栈跟踪。如果没有ExceptionDispatchInfo,它不

c# - 奇怪的表现行为

所以我有这2个方法,假设将1000项长整数数组乘以2。第一种方法:[MethodImpl(MethodImplOptions.NoOptimization)]Power(int[]arr){for(inti=0;i第二种方法:[MethodImpl(MethodImplOptions.NoOptimization)]PowerNoLoop(int[]arr){inti=0;arr[i]=arr[i]+arr[i];i++;arr[i]=arr[i]+arr[i];i++;arr[i]=arr[i]+arr[i];i++;............1000Times........arr[

c# - 使用委托(delegate)和 Lambda 的奇怪行为

作为在我正在开发的库中引入惰性格式化评估的一种方式,我定义了委托(delegate)publicdelegatestringMessageFormatterDelegate(stringmessage,paramsobject[]arguments);publicdelegatestringMessageFormatterCallback(MessageFormatterDelegateformatterDelegate);和下面类的内容publicstaticclassTestClass{publicstaticstringEvaluate(MessageFormatterCallb